#include "widget.h"
#include "ui_widget.h"

#include <QDebug>
#include <QResizeEvent>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 先把QLabel设置成和窗口一样大，让QLabel铺满整个窗口
    // 在构造函数里设置QLabel的尺寸，是一次性的，程序运行起来之后，QLabel的尺寸就固定了，此时对窗口进行缩放，QLabel的尺寸不会跟着变化
    QRect windowRect = this->geometry();
    ui->label->setGeometry(0, 0, windowRect.width(), windowRect.height());

    // 设置图片
    QPixmap pixmap(":/huaji.jpg");
    ui->label->setPixmap(pixmap);  // 默认左对齐，上下居中对齐
    // 启动自动拉伸，使图片填充整个QLabel
    ui->label->setScaledContents(true);
}

Widget::~Widget()
{
    delete ui;
}

// 重写父类（QWidget）虚函数resizeEvent，这个函数会在窗口大小发生改变时被自动调用
void Widget::resizeEvent(QResizeEvent *event)
{
    // 此处的形参event是非常有用的，里面包含了触发这个resize事件这一时刻，窗口的尺寸的数值
    qDebug() << event->size();
    ui->label->setGeometry(0, 0, event->size().width(), event->size().height());

    // 或者像下面这样设置label的尺寸也可以
//    ui->label->setGeometry(0, 0, this->width(), this->height());
}

